1. FIELD OF THE INVENTION
This invention relates to maintaining hierarchical data structures and more particularly relates to apparatus, systems, and methods for automatically synchronizing data structures representing similar data objects in separate enterprise information systems.
2. DESCRIPTION OF THE RELATED ART
With the advent of the Information Age, large organizations store voluminous amounts of information in large repositories. Examples of large organizations include a bank, an insurance company, a retail department store chain, a fuel distribution company, a city government entity, a church, a charity organization, and a commercial construction company.
An enterprise such as an auto parts manufacturing company may store customer orders in a production enterprise information systems (EIS). The production EIS may track the customer orders, manufacturing schedules, procurement details for individual components necessary to manufacture ordered parts, and employee scheduling. The same auto parts manufacturing enterprise may have a second EIS, a financial EIS that tracks at employee pay, accounts payable, and the like. The production EIS and the financial EIS serve different purposes. The production EIS may handle the scheduling of manufacturing more efficiently than the financial EIS. Similarly, the financial EIS may handle the payment of salaries and accounts payable more efficiently than the production EIS.
As an enterprise grows and evolves, the enterprise frequently acquires multiple enterprise information systems. The multiple systems may maintain similar data. For example, the auto parts financial EIS may keep a table of employees to track salary information while the production EIS may track employees to handle scheduling functions on an assembly line. Another enterprise may keep two enterprise information systems that track precisely the same data. Such a situation may arise due to the merger of two similar companies that previously had enterprise information systems.
As those of skill in the art understand, redundant data on two systems frequently creates problems. A new hire entered into a financial EIS may not be reflected in a production EIS. An assembly line manager who depends on the production EIS to schedule employees to work on the assembly line may not be able to schedule a new employee to work an assembly line shift until the both the production EIS and the financial EIS both include the new employee in their systems. Similarly, an assembly line manager may be able to enter an employee for work shifts in a production EIS, but the employee may not receive pay unless the employee's information is also entered into the financial EIS.
In the auto parts manufacturer example, owners of multiple EISs desire to synchronize the redundant data stored in distinct enterprise information systems. Synchronization avoids entering the information for a new employee into both systems. When information about the new employee changes in one system, those changes need to be propagated to all other systems that store similar data about the new employee.
Today, synchronization hubs exist to propagate information changes from one EIS to another. However, these synchronization hubs themselves are difficult to maintain and manage. A synchronization hub may identify the need to propagate changes to an employee in one EIS to other systems. However, the software code to propagate the changes can be cumbersome and complex. For example, an employee may have three dependents stored in a financial EIS. However, the dependents may not be stored in the production EIS. If an assembly line manager decides to fire an employee and remove the employee from the production EIS, the synchronization hub must propagate the change to the financial EIS. However, synchronization hubs today may not recognize that the dependents of the fired employee also need to be removed from the financial EIS.
An entry for a dependent may be termed a child entry related to an employee entry which may be termed a parent entry. Even if the dependent is a spouse, the dependent may be termed a child entry in terms of the entry's hierarchical relationship to the employee entry. In some systems, a dependent child entry may relate to a parent entry, a grandparent entry, or beyond. Synchronization hubs do not properly track hierarchical relationships among various child, parent, grandparent, and other related entries, unless an integration code developer provides explicit software instructions for doing so. For each change in one EIS, hierarchically related changes may need to be made in a second EIS. To handle various hierarchically related updates, a database programmer or integration developer may write extensive software code to run in a synchronization hub to anticipate hierarchical relationships and modify those relationships to properly propagate changes made in one EIS to a second EIS.
Owners of enterprise information systems may not know why or may not wish to explain why redundant enterprise information systems exist in their organizations. Even so, those owners know that the redundant data in the plurality of enterprise information systems must be kept in synch as inexpensively as possible.
From the foregoing discussion, it should be apparent that a need exists for an apparatus, system, and method that facilitate the synchronization of redundant data among a plurality of enterprise information servers. Ideally, the apparatus, system, and method must coo properly propagate data object changes as well as update hierarchically related data objects automatically, while avoiding the need for detailed database or integration programming to handle each type of update. Beneficially, such an apparatus, system, and method would automatically synchronize disparate enterprise information systems.